package cn.b.sky.admin.service;

import cn.b.sky.admin.model.BatchJobReport;
import cn.b.sky.admin.model.Page;
import cn.b.sky.admin.model.condition.TimeJobCondition;
import cn.b.sky.schedule.model.TimedJobInfo;

import java.util.List;

/**
 * <strong>Title : TimedJobService.java<br></strong>
 * <strong>Package : cn.b.sky.admin.service<br></strong>
 * <strong>Description : </strong>管理系统定时任务服务接口<br> 
 * <strong>Create on : 2016-6-8 下午1:19:51<br></strong>
 * <p>
 * @author dapeng.li<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 * <strong>修改历史:</strong><br>
 * 修改人|修改日期|修改描述<br>
 * -------------------------------------------<br>
 * <br>
 * <br>
 */
public interface AdminTimedJobService {

  /**
   * 
   * <strong>Title : selectTimedJobList<br></strong>
   * <strong>Description : </strong>管理系统分页查询定时任务列表<br> 
   * <strong>Create on : 2016-6-8 下午1:30:38<br></strong>
   * <p>
   * @param condition
   * @return
   * Page
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  Page selectTimedJobList(TimeJobCondition condition);
  
  /**
   * 
   * <strong>Title : selectEnableTimedJob<br></strong>
   * <strong>Description : </strong>查询启用的状态的任务<br> 
   * <strong>Create on : 2016-6-8 下午3:35:45<br></strong>
   * <p>
   * @return
   * List<TimedJob>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<TimedJobInfo> selectEnableTimedJob(int enable);

  /**
   * 
   * <strong>Title : selectTimedJob<br></strong>
   * <strong>Description : </strong>管理系统根据编号查询任务<br> 
   * <strong>Create on : 2016-6-8 下午3:31:06<br></strong>
   * <p>
   * @param jobCode
   * @return
   * TimedJob
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  TimedJobInfo selectTimedJob(String jobCode);

  /**
   * 
   * <strong>Title : updateTimedConfig<br></strong>
   * <strong>Description : </strong>修改定时任务<br> 
   * <strong>Create on : 2016-3-18 上午9:55:32<br></strong>
   * <p>
   * @param timedJobInfo
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void updateTimedConfig(TimedJobInfo timedJob);

  /**
   * 
   * <strong>Title : doExecuteTimedJob<br></strong>
   * <strong>Description : </strong>执行任务<br> 
   * <strong>Create on : 2016-3-18 上午9:55:19<br></strong>
   * <p>
   * @param timedJobInfo
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void doExecuteTimedJob(TimedJobInfo timedJob) throws Exception;

  /**
   * 
   * <strong>Title : saveTimedConfig<br></strong>
   * <strong>Description : </strong>保存<br> 
   * <strong>Create on : 2015-9-15 下午6:22:54<br></strong>
   * <p>
   * @param timedJobInfo
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void saveTimedConfig(TimedJobInfo timedJob);
  
  /**
   * <strong>Title : checkTimedJob<br></strong>
   * <strong>Description : </strong>根据作业编号查看是否存在<br> 
   * <strong>Create on : 2016-6-21 下午2:00:56<br></strong>
   * <p>
   * @param jobCode
   * @return
   * boolean
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  boolean checkTimedJob(String jobCode);
  
  /**
   * 
   * <strong>Title : updateLastExecTime<br></strong>
   * <strong>Description : </strong>更新执行时间<br> 
   * <strong>Create on : 2016-6-22 上午9:13:42<br></strong>
   * <p>
   * @param jobCode
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void updateLastExecTime(String jobCode);
  
  /**
   * 
   * <strong>Title : doDisableTimedJob<br></strong>
   * <strong>Description : </strong>停用任务<br> 
   * <strong>Create on : 2016-6-22 上午9:25:07<br></strong>
   * <p>
   * @param timedJobInfo
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void doDisableTimedJob(TimedJobInfo timedJobInfo);

  /**
   * 
   * <strong>Title : doEnableTimedJob<br></strong>
   * <strong>Description : </strong>启用任务<br> 
   * <strong>Create on : 2016-6-22 上午9:26:51<br></strong>
   * <p>
   * @param timedJobInfo
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void doEnableTimedJob(TimedJobInfo timedJobInfo);

  /**
   * 
   * <strong>Title : deleteTimedJob<br></strong>
   * <strong>Description : </strong>删除定时作业<br> 
   * <strong>Create on : 2016-6-24 下午3:40:59<br></strong>
   * <p>
   * @param jobCode
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  BatchJobReport deleteTimedJob(String jobCode);

}
